﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using CondominiosMVC.SRCuota;

namespace CondominiosMVC.Controllers
{
    public class CuotaController : Controller
    {
        //
        // GET: /Cuota/

        public ActionResult Index()
        {
            SRCuota.CuotasClient res = new SRCuota.CuotasClient();
            ICollection<SCuota> modelo = res.ListarCuotas();

            return View(modelo);
        }

        //
        // GET: /Cuota/Details/5

        public ActionResult Details(int IdCuota)
        {
            SRCuota.CuotasClient res = new SRCuota.CuotasClient();
            SCuota modelo = res.ObtenerCuota(IdCuota);

            return View(modelo);
        }

        //
        // GET: /Cuota/Create

        public ActionResult Create()
        {
            return View();
        } 

        //
        // POST: /Cuota/Create

        [HttpPost]
        public ActionResult Create(FormCollection collection)
        {
            try
            {
                SCuota cuotaACrear = new SCuota();
                SVivienda vivienda = new SVivienda();

                vivienda.NumVivienda = int.Parse(collection["Vivienda"]);

                cuotaACrear.Vivienda = vivienda;

                cuotaACrear.Mes = (String)collection["Mes"];
                cuotaACrear.Anio = (String)collection["Anio"];
                cuotaACrear.Importe = Decimal.Parse(collection["Importe"]);
                cuotaACrear.FechaVencimiento = DateTime.Parse(collection["FechaVencimiento"]);
                cuotaACrear.Estado = (String)collection["Estado"];

                SRCuota.CuotasClient res = new SRCuota.CuotasClient();
                res.CrearCuota(cuotaACrear);

                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }
        
        //
        // GET: /Cuota/Edit/5

        public ActionResult Edit(int IdCuota)
        {
            SRCuota.CuotasClient res = new SRCuota.CuotasClient();
            SCuota modelo = res.ObtenerCuota(IdCuota);

            return View(modelo);
        }

        //
        // POST: /Cuota/Edit/5

        [HttpPost]
        public ActionResult Edit(int IdCuota, FormCollection collection)
        {
            try
            {
                SRCuota.CuotasClient res = new SRCuota.CuotasClient();

                SCuota cuotaAModificar = res.ObtenerCuota(IdCuota);

                SVivienda vivienda = new SVivienda();

                vivienda.NumVivienda = int.Parse(collection["Vivienda.NumVivienda"]);

                cuotaAModificar.Mes = (String)collection["Mes"];
                cuotaAModificar.Anio = (String)collection["Anio"];
                cuotaAModificar.Importe = Decimal.Parse(collection["Importe"]);
                cuotaAModificar.FechaVencimiento = DateTime.Parse(collection["FechaVencimiento"]);
                cuotaAModificar.Estado = (String)collection["Estado"];

                res.ModificarCuota(cuotaAModificar);
 
                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }

        //
        // GET: /Cuota/Delete/5

        public ActionResult Delete(int IdCuota)
        {
            SRCuota.CuotasClient res = new SRCuota.CuotasClient();
            SCuota modelo = res.ObtenerCuota(IdCuota);

            return View(modelo);
        }

        //
        // POST: /Cuota/Delete/5

        [HttpPost]
        public ActionResult Delete(int IdCuota, FormCollection collection)
        {
            try
            {
                SRCuota.CuotasClient res = new SRCuota.CuotasClient();
                SCuota cuotaAEliminar = res.ObtenerCuota(IdCuota);
                res.EliminarCuota(IdCuota);
 
                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }
    }
}
